自從有了 TeamCity 後,很多原本需要人工操作的任務都可以交給 CI 主機做。因為它會在每一次發現變更的時候自動執行,一方面不會漏掉或忘了執行、另一方面在執行的時候也不會有流程或順序上的失誤(只要我們有設定正確)。更重要的是,隨著專案愈來愈大,建置任務會需要較長時間執行,所以不用在電腦前面等也能節省不少開發者的時間。
不過,每次開發者都還要自己記得回去 TeamCity 的 Web UI 上看結果,還是會花掉一點時間,而當建置任務是成功的時候,其實好像也沒有回去看結果的必要。是不是能讓 TeamCity 平時就安安靜靜的執行任務,等到有錯誤發生時,再主動通知我們就好?
當然可以!TeamCity 內建通知(Notifier)機制,可以將建置的結果通過支援的頻道發送通知,目前內建支援以下這些通知機制:
今天我們就針對最常使用的 Email Notifier 做重點介紹,其他 Notifier 的設定方式也大同小異,詳細的內容可以參考官方文件。
今天我們就以 Email 通知做範例,帶著大家了解一下 TeamCity 裡的通知功能。首先需要設定一台 SMTP 主機給 TeamCity 發信使用(On-Premise 版才需要、Cloud 版可跳過這步),請先進入 Administration 頁,選擇左邊的 Email Notifier 進入設定頁。
在設定頁填入 SMTP host、port、發送 email、帳號、密碼等資訊後,可以用 Test connection 功能來測試發信功能。當然,假如想要客製化發送的信件內容也是可以的,細節可以參考 官方文件 。
TeamCity 會自動套用預設的通知規則在群組上,當然,管理員可以依照管理需求增加群組訂閱規則,而每一個帳號也可以客製化自己的訂閱規則,非常彈性。
以群組管理來說,先到 Administration 底下的 Groups 設定,選擇 All Users 群組(或是您想更改設定的群組)。
選擇左邊側邊欄的 Notification Roles 選項,在 Email Notifier 分頁裡,可以針對你想訂閱(Watch)哪些專案(Project)的 Build Configuration 的哪些事件(Event)按下 Edit 連結做設定。
對個人帳號來說,先到 Administration 底下的 Users 設定,進入想要修改的帳號,選擇左邊側邊欄的 Notification Roles 選項,在 Email Notifier 分頁裡,可以看到因為群組設定而繼承的規則,也可以按下 Add new rule 按鈕來新增新的訂閱規則。
TeamCity 可以依據建置任務的結果觸發不同的後續動作,這個功能叫 Build Feature。在 Build Feature 眾多的動作裡,其中一個就是 Notification。其實機制跟上面的 Notifier 類似,支援 Email 及 Slack 兩種通知頻道,可以將 Build 結果送到特定 Email 或 Slack 裡。
設定方式很簡單,首先進到 Shopping Cart 專案底下的 Build Configuration,選擇左邊側邊欄的 Build Features 設定,按一下右邊的 Add build feature 按鈕。這時會彈出一個設定視窗,選擇 Notifications,Notifier 選 Email Notifier、設定目標 Email 位置、勾選想要訂閱的事件後按 Save 就完成了。
經過今天的介紹,我們知道如何客製化 TeamCity 的通知功能,就不用每次都要到 TeamCity 的 Web UI 看結果,而是等接到通知後再去看報表,又省下不少時間。不過,若是團隊不想被 Email 轟炸、或是用的不是 Slack 的話,有沒有什麼方式可以擴充 TeamCity 呢?我們明天來揭曉!